package cn.tom.basic.controller;

import cn.tom.basic.util.AjaxResult;
import cn.tom.basic.util.FastDfsUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;

/**
 * 上传接口：需要
 * 下载接口：不需要 - 通过地址直接访问
 * 删除接口：需要
 * 修改接口：先删除再上传
 */
@RestController
@RequestMapping("/fastDfs")
public class FastDfsController {

    /**
     * 文件上传接口
     * @param file
     * @return
     * @throws IOException
     */
    @PostMapping
    public AjaxResult upload(@RequestPart MultipartFile file) throws IOException {
        //准备参数
        byte[] bytes = file.getBytes();
        // g5.gif - gif
        String oName = file.getOriginalFilename();
        String extName = oName.substring(oName.lastIndexOf(".") + 1);
        // /group1/M00/00/5E/rBEACmUOoa6AbSbqAAbMJw3URKE940.gif
        String fileName = FastDfsUtils.upload(bytes, extName);
        return AjaxResult.me().setResultObj("http://115.159.88.63:8800" + fileName);
    }


    /**
     * 文件删除接口
     * @param path
     * @return
     */
    //前端要传递的参数：/group1/M00/00/5E/rBEACmUOoa6AbSbqAAbMJw3URKE940.gif - 接收 - 拆分
    //第一种：http://localhost:8080/fastDfs//group1/M00/00/5E/rBEACmUOoa6AbSbqAAbMJw3URKE940.gif - 不好接收
    //第二种：http://localhost:8080/fastDfs?path=/group1/M00/00/5E/rBEACmUOoa6AbSbqAAbMJw3URKE940.gif - 参数名
    @DeleteMapping
    public AjaxResult delete(String path){
        String tempPath = path.substring(1);  //  group1/M00/00/5E/rBEACmUOoa6AbSbqAAbMJw3URKE940.gif
        //获取组名或卷名 - indexOf()第一个的位置
        String groupName = tempPath.substring(0,tempPath.indexOf("/"));
        //获取路径名
        String fileName = tempPath.substring(tempPath.indexOf("/") + 1);
        FastDfsUtils.delete(groupName,fileName);
        return new AjaxResult();
    }
}
